// $(document).on("click",".dropdown-toggle",function(){
//     if( $(window).width()
//         > 767 ){
//         if($(this).attr('href')) window.location = $(this).attr('href');
//     }
// });


$(function(){
    //根据key 获取本地存储中的数据
    let tel = localStorage.getItem("tel");
    let pwd = localStorage.getItem("pwd");

    //将它们塞入对应的文本框架中去
    $("#telNumber").val(tel);
    $("#password").val(pwd);

    //如果曾经记住过密码,页面中的checkbox应该是处于选中的状态
    if(tel!=null && tel.trim().length>0 && pwd!=null && pwd.trim().length>0){
        $("#ck").prop("checked",true);
    }
})
var lockReconnect = false;  //避免ws重复连接
var ws = null;          // 判断当前浏览器是否支持WebSocket
var port = window.location.port;
var wsUrl = "ws://127.0.0.1:"+port+"/fr/tt/"+$("input[name='userIdHid']").val();
$("#loginF").click(function () {
    // 进行一个本地存储
    let tel = $("#telNumber").val();
    let pwd = $("#password").val();
    let json_user = {"telNumber":tel,"password":pwd};
    let json_user_str = JSON.stringify(json_user);
    $.ajax({
        type:'post',
        url:'/fr/index/login',
        contentType:'application/json',
        dataType:'json',
        data:json_user_str,
        success:function(data){
            if(data.code == 200){
                $("#loginForm").submit();
            }
            if(data.code == 404){
                //用户不存在
                $("#telNumber").next().show();
                $("#password").next().hide();
            }
            if(data.code == 400){
                //密码错误
                $("#telNumber").next().hide();
                $("#password").next().show();
            }
        }
    })
    if($("#ck").prop("checked")){
        //本地存储
        localStorage.setItem("tel",tel);
        localStorage.setItem("pwd",pwd);

    }else{
        //粗暴 - 直接清空本地缓存
        //localStorage.clear();

        //移除指定的key - 删除key
        localStorage.removeItem("tel");
        localStorage.removeItem("pwd");
    }
})

   //连接ws
createWebSocket(wsUrl);
function createWebSocket(url) {
    try{
        if('WebSocket' in window){
            ws = new WebSocket(url);
        }
        initEventHandle();
    }catch(e){
        reconnect(url);
        console.log(e);
    }
}

function initEventHandle() {
    ws.onclose = function () {
        reconnect(wsUrl);
        console.log("ws连接关闭!"+new Date().toLocaleString());
    };
    ws.onerror = function () {
        reconnect(wsUrl);
        console.log("ws连接错误!");
    };
    ws.onopen = function () {
        heartCheck.reset().start();      //心跳检测重置
        console.log("ws连接成功!"+new Date().toLocaleString());
    };
    ws.onmessage = function (event) {    //如果获取到消息，心跳检测重置
        heartCheck.reset().start();      //拿到任何消息都说明当前连接是正常的
        console.log("ws收到消息啦:" +event.data);
        getMessage();
        if(event.data!='pong'){
            // let data = JSON.parse(event.data);
        }
    };
}
// 监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
window.onbeforeunload = function() {
    ws.close();
}

function reconnect(url) {
    if(lockReconnect) return;
    else{
        lockReconnect = true;
        setTimeout(function () {     //没连接上会一直重连，设置延迟避免请求过多
            createWebSocket(url);
            lockReconnect = false;
        }, 3000);
    }

}

//心跳检测
var heartCheck = {
    timeout: 1000*60,        //1分钟发一次心跳
    timeoutObj: null,
    serverTimeoutObj: null,
    reset: function(){
        clearTimeout(this.timeoutObj);
        clearTimeout(this.serverTimeoutObj);
        return this;
    },
    start: function(){
        var self = this;
        this.timeoutObj = setTimeout(function(){
            //这里发送一个心跳，后端收到后，返回一个心跳消息，
            //onmessage拿到返回的心跳就说明连接正常
            // ws.send("ping");
            // console.log("ping!")
            self.serverTimeoutObj = setTimeout(function(){//如果超过一定时间还没重置，说明后端主动断开了
                ws.close();     //如果onclose会执行reconnect，我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
            }, self.timeout)
        }, this.timeout)
    }
}

//消息闪动
function getMessage(){
    $('#myReplyMessage').css('display','block');
    let count = 0;
    let oldcol = '#fff';
    let divcol = 'red';
    let shanshuo = function(){
        count++;

        if(count%2==0){
            $('#myReplyMessage').css('background-color',divcol);
        }else{
            $('#myReplyMessage').css('background-color',oldcol);
        }
        setTimeout(shanshuo, 800);
    };
    shanshuo();
}
//取消消息闪动
function cancelMessage(){
    $('#myReplyMessage').css('display','none')
}
$(function () {
    $("#exit").click(function () {
        $.ajax({
            type: 'get',
            url: '/fr/index/exit',
            success:function () {
                window.location.href = "/fr/index";
            }
        })
    })
})